//package com.yx.changdao.common.data;
//
//
//import com.baomidou.mybatisplus.core.metadata.IPage;
//
//import java.util.HashMap;
//import java.util.LinkedHashMap;
//import java.util.List;
//import java.util.Map;
//
///**
// * @Title: Result
// * @Description:
// * @Auther: Zhangjiashun
// * @Version: 1.0
// * @create 2019/10/18 10:50
// */
//public class Result extends LinkedHashMap<String, Object> {
//
//    public static final String CODE = "code";
//    public static final String MESSAGE = "message";
//    public static final String DATA = "data";
//    public static final String ITEM = "item";
//    public static final String LIST = "list";
//    public static final String PAGER = "pager";
////    当前满足条件总行数
//    public static final String TOTAL = "total";
////    当前页
//    public static final String CURRENT = "current";
////    当前分页总页数
//    public static final String SIZE = "size";
////    当前分页总页数
//    public static final String PAGES = "pages";
//
//
//    private Result() {
//    }
//
//    // 成功状态。
//    public static Result ok() {
//        return setResult(ResultCodeEnum.SUCCESS);
//    }
//
//    public static Result ok(String message) {
//        return ok().message(message);
//    }
//
//    // 失败状态
//    public static Result error() {
//        return setResult(ResultCodeEnum.ERROR);
//    }
//
//    public static Result error(String message) {
//        return error().message(message);
//    }
//
//
//    /**
//     * 根据返回枚举设置返回结果。
//     *
//     * @param result
//     * @return
//     */
//    public static Result setResult(ResultCodeEnum result) {
//        Result r = new Result();
//        r.setCode(result.getCode());
//        r.setMessage(result.getMessage());
//        return r;
//    }
//
//    /**
//     * 设置返回data数据
//     *
//     * @param map
//     * @return
//     */
//    public Result data(Map<String, Object> map) {
//        this.setData(map);
//        return this;
//    }
//
//    /**
//     * 传入的是list 默认调用list方法。
//     */
//    public Result data(List value) {
//        this.list(value);
//        return this;
//    }
//
//    /**
//     * 只传一个值 默认 键 为item
//     */
//    public Result data(Object value) {
//        this.data(ITEM, value);
//        return this;
//    }
//
//
//    /**
//     * 传入一个键值对。
//     *
//     * @param key
//     * @param value
//     * @return
//     */
//    public Result data(String key, Object value) {
//        this.put(key, value);
//        return this;
//    }
//
//
//    /**
//     * 传入列表。 存放在 data 下。 不写键默认为list
//     *
//     * @param list
//     * @return
//     */
//    public Result list(List list) {
//        this.list(LIST, list);
//        return this;
//    }
//
//    /**
//     * 解析分页数据返回分页结果集
//     *
//     * @param page
//     * @param <T>
//     * @return
//     */
//
//    public <T> Result pageList(IPage<T> page) {
//        List<T> records = page.getRecords();
//        HashMap<String, Object> pages = new HashMap<>();
//        pages.put(TOTAL, page.getTotal());
//        pages.put(CURRENT, page.getCurrent());
//        pages.put(SIZE, page.getSize());
//        pages.put(PAGES, page.getPages());
//        this.list(records);
//        this.put(PAGER, pages);
//        return this;
//    }
//
//    /**
//     * 传入 指定名的列表 存放在 data 下。
//     *
//     * @param list
//     * @return
//     */
//    public Result list(String listName, List list) {
//        this.data(listName, list);
//        return this;
//    }
//
//
//    /**
//     * 设置响应消息。
//     *
//     * @param message
//     * @return
//     */
//    public Result message(String message) {
//        this.setMessage(message);
//        return this;
//    }
//
//    /**
//     * 设置响应码。
//     *
//     * @param code
//     * @return
//     */
//    public Result code(int code) {
//        this.setCode(code);
//        return this;
//    }
//
//    /**
//     * 在返回结果集最外层设置 键值 与code message同级。
//     *
//     * @param name
//     * @param value
//     * @return
//     */
//    public Result set(String name, Object value) {
//        this.put(name, value);
//        return this;
//    }
//
//    // =========================== getter AND setter ==========================
//    public Integer getCode() {
//        return (Integer) this.get(CODE);
//    }
//
//    public void setCode(Integer code) {
//        this.put(CODE, code);
//    }
//
//    public String getMessage() {
//        return this.get(MESSAGE).toString();
//    }
//
//    public void setMessage(String message) {
//        this.put(MESSAGE, message);
//    }
//
//    public Map<String, Object> getData() {
//        return (Map<String, Object>) this.get(DATA);
//    }
//
//    public void setData(Map<String, Object> data) {
//        this.put(DATA, data);
//    }
//}
